// // 模拟栈
// class Stack {
//   constructor() {
//     this.items = []
//   }

//   // 入栈
//   push(element) {
//     this.items.push(element)
//   }

//   // 出栈
//   pop() {
//     if (this.isEmpty()) {
//       return '栈已空'
//     }
//     return this.items.pop()
//   }

//   // 查看栈顶元素
//   peek() {
//     if (this.isEmpty()) {
//       return '栈为空'
//     }
//     return this.items[this.items.length - 1]
//   }

//   // 判断栈是否为空
//   isEmpty() {
//     return this.items.length === 0
//   }

//   // 获取栈的大小
//   size() {
//     return this.items.length
//   }

//   // 清空栈
//   clear() {
//     this.items = []
//   }

//   // 打印栈内容
//   print() {
//     console.log(this.items.toString())
//   }
// }

// // 使用示例
// const stack = new Stack()
// stack.push(1)
// stack.push(2)
// stack.push(3)
// console.log(stack.pop()) // 输出3
// console.log(stack.peek()) // 输出2
// console.log(stack.size()) // 输出2
// stack.print() // 输出1,2

// // 模拟队列
// class PriorityQueue {
//   constructor() {
//     this.items = []
//   }

//   // 入队
//   enqueue(element, priority) {
//     const queueElement = { element, priority }

//     if (this.isEmpty()) {
//       this.items.push(queueElement)
//     } else {
//       let added = false
//       for (let i = 0; i < this.items.length; i++) {
//         if (queueElement.priority < this.items[i].priority) {
//           this.items.splice(i, 0, queueElement)
//           added = true
//           break
//         }
//       }
//       if (!added) {
//         this.items.push(queueElement)
//       }
//     }
//   }

//   // 出队
//   dequeue() {
//     if (this.isEmpty()) {
//       return '队列已空'
//     }
//     return this.items.shift()
//   }

//   // 查看队首元素
//   front() {
//     if (this.isEmpty()) {
//       return '队列为空'
//     }
//     return this.items[0]
//   }

//   // 判断队列是否为空
//   isEmpty() {
//     return this.items.length === 0
//   }

//   // 获取队列的大小
//   size() {
//     return this.items.length
//   }

//   // 打印队列内容
//   print() {
//     console.log(
//       this.items.map((item) => `${item.element}:${item.priority}`).join(', ')
//     )
//   }
// }

// // 使用示例
// const priorityQueue = new PriorityQueue()
// priorityQueue.enqueue('任务1', 2)
// priorityQueue.enqueue('任务2', 1)
// priorityQueue.enqueue('任务3', 3)
// priorityQueue.print() // 输出: "任务2:1, 任务1:2, 任务3:3"
// console.log(priorityQueue.dequeue()) // 输出: { element: "任务2", priority: 1 }

// 栈
let stack = []
// 入栈
console.log('入栈')
stack.push(1)
console.log(stack)
stack.push(2)
console.log(stack)
stack.push(3)
console.log(stack)
// 出栈
console.log('出栈')
stack.pop()
console.log(stack)
stack.pop()
console.log(stack)
stack.pop()
console.log(stack)

// 队列
let queue = []
// 入队
console.log('入队')
stack.push(1)
console.log(stack)
stack.push(2)
console.log(stack)
stack.push(3)
console.log(stack)
// 出队
console.log('出队')
stack.shift()
console.log(stack)
stack.shift()
console.log(stack)
stack.shift()
console.log(stack)
